<?php
/**
 * 验证日期
 */
include_once PATH_LIB.'/DateTimeParser.php';

class DateValidator extends AbstractValidator
{	
	/**
	 * 日期格式
	 * @var mix
	 */
	public $format=array('yyyy-MM-dd','yyyy-MM-dd HH:mm:ss');
	/**
	 * 是否允许为空 
	 * @var boolean
	 */
	public $allowEmpty=true;
		
	/**
	 * 验证方法
	 * @param string $label  显示在页面的名称
	 * @param mix $value 要验证的值
	 */	
	public function validate($label,$value){
		if($this->allowEmpty && $this->isEmpty($value))
			return true;
		$formats=is_string($this->format) ? array($this->format) : $this->format;
		$valid=false;
		foreach($formats as $format){
			$timestamp=DateTimeParser::parse($value,$format,array('month'=>1,'day'=>1,'hour'=>0,'minute'=>0,'second'=>0));
			if($timestamp!==false){
				$valid=true;
				break;
			}
		}
		if($valid===false) return $this->message($label);
		return true;
	}
	/**
	 * 验证失败的信息
	 * @param string $label
	 */
	public function message($label){		
		if($this->language==='cn'){
			return $label.'格式不正确';
		}		
	}

}
